package com.seeyon.apps.quartz;

import com.seeyon.ctp.common.quartz.QuartzJob;

import java.util.Map;

/**
 * 
 * @author fgw
 * 强生定时任务模块接口
 */
public interface IQuartzTask extends QuartzJob {
	
	static final String JOB_NAME = "jobName";
	static final String JOB_PARAM = "param";
	/**
	 * 定时任务管理的模板编号
	 */
	static final String CODE = "quartzManager";
	
	/**
	 * 需要由开发实现的接口，定时任务会执行，返回的结果将记录到表单中
	 * 这里的param是表单中配置的任务参数
	 * 自行处理
	 */
	public String taskRun(String param) throws Exception;
	
	public String executeFunc(Map<String, String> params);
	
	/**
	 * 记录日志
	 * @param log
	 */
	void doLog(String jobName, String log, String cost);
	
	/**
	 * 是否能够并发，即上次任务没执行完成之前下次任务能否执行
	 * @return
	 */
	boolean canConcurrency(String param);
	
	/**
	 * 校验参数是否正确
	 * 返回空字符串表示校验成功，其余的在启动任务的时候会提示用户
	 * @param param
	 * @return
	 */
	String validateParam(String param);
	
}
